#ifndef USERMODEL_H
#define USERMODEL_H

#include "user.hpp"
#include <string>
#include <stdexcept>
#include <vector>
#include <memory>
// #include <optional> // 包含 std::optional

/**
 * @class UserModel
 * @brief 用户表的ORM类，提供对user表的CRUD操作。
 */
class UserModel {
public:
    // 构造函数和析构函数
    UserModel() = default;
    ~UserModel() = default;

    // User表的Add方法, 例如：向表中增加信息
    bool insert(User &user);

    // 查找用户，假设一定能找到用户，否则抛出异常
    std::unique_ptr<User> find(const int &id);

    // 更新用户状态信息
    bool updateState(const User &user);

    // 删除用户
    bool remove(const int &id);

    // 获取所有用户
    std::vector<User> getAllUsers();

    // 重置用户的状态信息为offline
    void resetState();

private:
    // 这里可以添加私有成员变量，如数据库连接等

};

#endif // USERMODEL_H








